<?php
/**
 * Created by PhpStorm.
 * User: admin
 * Date: 2019/12/30
 * Time: 16:03
 */

namespace app\api\controller\v1;
use app\api\controller\v1\common\Common;

use app\api\model\v1\User as userModel;
use app\api\model\v1\User2 as userModel2;
use app\api\model\v1\User2;
use think\Validate;

use think\Loader;
use app\api\controller\Validate\User as userValidate;
use app\index\controller\Index as mail;

class User extends Common
{
    //登录接口
    public function login(){
        //使用模型进行数据库的操作
        $params = input("post.");//input 一个内置的助手函数用户接受各种传递的参数
        //此处还应该需要做一次表单验证 ... (略去)
        $res = userModel::login($params);
//        print_r($res);
        if(!$res){
            Common::toJson(0,"登录失败!");
        }else{
            //生成token
            $token = md5($res[0]['uid'].time().mt_rand(10000,99999));
            //将颁发过的token要记录到数据库中
            $res[0]['token'] = $token;
            userModel::recordToken($token,$res[0]['uid']);
            Common::toJson(200,"登录成功!",$res);
        }
    }

    //注册接口
    function register($data){
//        return userModel2::get(1);
//        $User = new User2;
//        $User->USERNAME="张三";
//        $User->PASSWORD = md5('WT18'.md5(123456));
//        $User->save();

//            $User = new User2([
//                'USERNAME' => 'thinkphp2',
//                'PASSWORD' => 123456
//            ]);
//            $User->save();
//            echo '当前插入数据的UID为:'.$User->UID;

        //自动对指定的字段数据进行额外操作, 需要使用create方法添加
        $test=$this->test2($data);
        print_r($test);
        print_r($data);
        $User = User2::create($data,true);
        $User->save();
        $uid=$User->uid;
        $data['uid']=$uid;
        mail::mail($data);
        //批量写入数据
//        $User = new User2;
//        $data = [
//            [
//                'USERNAME' => 'thinkphp1',
//                'PASSWORD' => md5('WT18'.md5(123456))
//            ],[
//                'USERNAME' => 'thinkphp2',
//                'PASSWORD' => md5('WT18'.md5(123456))
//            ]
//        ];
//        $User->saveAll($data);//批量写入多条记录

        //更新数据
//        $User = new User2;
//        $User->where(["UID"=>51])->update(['USERNAME'=>"李四"]);

        //删除数据 , 根据主键值删除
//         $User = User2::get(39);
//         $User->delete();

            //通过静态方法destroy 直接删除指定的主键数据
//            User2::destroy('44,43,45');

//           User2::where('USERNAME','LIKE',"%thinkphp%")->delete();

            //查询多个主键值的数据
//            $list = User2::all('1,2,3');
//            return $list;
    }

    //测试验证器
     function test($data){
        //定义个数据的校验规则
        $rules = [
            'name'=>'require|max:10',
            'pwd'=>'require',
            'email'=>'email'
        ];
        //模拟数据
//        $data = [
//            'name'=>'hello',
//            'pwd'=>123456,
//            'age'=>20
//        ];

        $validate = new Validate($rules); //创建一个验证器

        if(!$validate->check($data)){
            return '数据校验失败!';
        }

        return '数据校验成功!';
    }

    //测试验证器2
    function test2($data){
        //模拟数据
//        $data = [
//            'name'=>"",
//            'age'=>20,
//            'email'=>"sadas@qq.com"
//        ];
        //使用定义的验证器
        $validate = new userValidate();
        if(!$validate->check($data)){
            return $validate->getError();
        }
        return '验证表单成!';
    }


}